A modeling product may model a system. The modeling product may use objects to store information about the system. Macro expansion language may be used to calculate the value of an object based on values of one or more other objects. If calculated values are not stored in the model, the values may be calculated as needed.